package com.mydomain.Bodega;
// Generated 09-oct-2009 21:00:47 by Hibernate Tools 3.2.2.GA

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * InvDevolucion generated by hbm2java
 */
@Entity
@Table(name = "inv_devolucion", schema = "public")
public class InvDevolucion implements java.io.Serializable {

	private long devCodigo;
	private Subdepartamento subdepartamento;
	private Long devCodigoFactura;
	private Integer depCodigo;
	private Date devFecha;
	private String devObservacion;
	private BigDecimal devIva;
	private BigDecimal deDescuento;
	private Set<InvDevolucionIte> invDevolucionItes = new HashSet<InvDevolucionIte>(
			0);

	public InvDevolucion() {
	}

	public InvDevolucion(long devCodigo, Date devFecha) {
		this.devCodigo = devCodigo;
		this.devFecha = devFecha;
	}
	public InvDevolucion(long devCodigo, Subdepartamento subdepartamento,
			Long devCodigoFactura, Integer depCodigo, Date devFecha,
			String devObservacion, BigDecimal devIva, BigDecimal deDescuento,
			Set<InvDevolucionIte> invDevolucionItes) {
		this.devCodigo = devCodigo;
		this.subdepartamento = subdepartamento;
		this.devCodigoFactura = devCodigoFactura;
		this.depCodigo = depCodigo;
		this.devFecha = devFecha;
		this.devObservacion = devObservacion;
		this.devIva = devIva;
		this.deDescuento = deDescuento;
		this.invDevolucionItes = invDevolucionItes;
	}

	@Id
	@Column(name = "dev_codigo", unique = true, nullable = false, precision = 10, scale = 0)
	@NotNull
	public long getDevCodigo() {
		return this.devCodigo;
	}

	public void setDevCodigo(long devCodigo) {
		this.devCodigo = devCodigo;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "subdep_codigo")
	public Subdepartamento getSubdepartamento() {
		return this.subdepartamento;
	}

	public void setSubdepartamento(Subdepartamento subdepartamento) {
		this.subdepartamento = subdepartamento;
	}

	@Column(name = "dev_codigo_factura", precision = 10, scale = 0)
	public Long getDevCodigoFactura() {
		return this.devCodigoFactura;
	}

	public void setDevCodigoFactura(Long devCodigoFactura) {
		this.devCodigoFactura = devCodigoFactura;
	}

	@Column(name = "dep_codigo", precision = 5, scale = 0)
	public Integer getDepCodigo() {
		return this.depCodigo;
	}

	public void setDepCodigo(Integer depCodigo) {
		this.depCodigo = depCodigo;
	}
	@Temporal(TemporalType.DATE)
	@Column(name = "dev_fecha", nullable = false, length = 13)
	@NotNull
	public Date getDevFecha() {
		return this.devFecha;
	}

	public void setDevFecha(Date devFecha) {
		this.devFecha = devFecha;
	}

	@Column(name = "dev_observacion", length = 100)
	@Length(max = 100)
	public String getDevObservacion() {
		return this.devObservacion;
	}

	public void setDevObservacion(String devObservacion) {
		this.devObservacion = devObservacion;
	}

	@Column(name = "dev_iva", precision = 13, scale = 4)
	public BigDecimal getDevIva() {
		return this.devIva;
	}

	public void setDevIva(BigDecimal devIva) {
		this.devIva = devIva;
	}

	@Column(name = "de_descuento", precision = 13, scale = 4)
	public BigDecimal getDeDescuento() {
		return this.deDescuento;
	}

	public void setDeDescuento(BigDecimal deDescuento) {
		this.deDescuento = deDescuento;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "invDevolucion")
	public Set<InvDevolucionIte> getInvDevolucionItes() {
		return this.invDevolucionItes;
	}

	public void setInvDevolucionItes(Set<InvDevolucionIte> invDevolucionItes) {
		this.invDevolucionItes = invDevolucionItes;
	}

}
